The things checked are:
Mismatched groups (braces), environments and math mode delimiters. When a mismatch is found, line numbers for both start and end of the mismatch is given. The error messages comes in pairs, one for the end match and one for the beginning, marked with `<-' and `->' respectively.
Bad spacing. This is: missing a `\ ' after an abbreviation, missing an `\@' before a punctuation mark in a paragraph that is ended by an capital letter, double spaces like ` ~', bad usage of ellipsis (like using ... instead of \ldots, or using \ldots where \cdots should be used) missing ~ before a \cite or \ref command
Badly placed punctation marks aroud end of math mode delimitors. This is, pucktators placed right after display math end or punctators placed right before text math end. Also sequences of whitespace followed by punctation marks are cought.
Bad use of citation characters, constructs like "'word" or "word`" will be caught.
lacheck will read files that are input using \input or \include. Files with suffix `.sty' are omitted, as they probably will cause lacheck to crash.
lacheck may be invoked from within Emacs(1) using compile:
To run: M-x compile <ret> , and then C-x ` to parse the messages
lacheck compiler
A control space `\ ' should be inserted at line 34, to prevent an end-of-sentence space. Also, at line 179, the first space of the sequence " ~" should probably be deleted. The last two lines is an example, where the user mistyped, and probably inserted an extra "}" somewhere.
A mismatch error may cause more to follow, due to the chosen algorithm. In such cases just correct the first error and run lacheck again
Braces, environments and math mode must be balanced within a file.
LaCheck may be confused by unmatched stuff placed inside vebatim-like environments called something else than exactly `verbatim'.